﻿using AnjLab.SyncIT.Core.Data.Outlook;

namespace AnjLab.SyncIT.Core.Api
{
    public enum Importance
    {
        Normal,
        High,
        Low
    }

    public interface ISourceTask
    {
        string ID { get; }
        string Summary { get; }
        string Owner { get; }
        Importance Importance { get; }
        string StartDate { get; set; }
        string EndDate { get; set; }
        bool IsClosed { get; }
        bool IsAssignedToMe(Source source);
        /// <summary>
        /// Provide additional data to Outlook task associated with this ISourceTask instance.
        /// This method is called when the task being first time added to Outlook
        /// </summary>
        /// <param name="outlookTask"></param>
        void InitializeOutlookTask(IOutlookItem outlookTask);
        /// <summary>
        /// Provide additional data to Outlook task associated with this ISourceTask instance.
        /// This method is called after the task being updated in Outlook
        /// </summary>
        /// <param name="outlookTask"></param>
        void UpdateOutlookTask(IOutlookItem outlookTask);
    }
}
